home *** CD-ROM | disk | FTP | other *** search
/ JavaScript Source Code 2002 / JavaScript Source Code 2002.iso / bannerpd.js < prev    next >
Text File  |  2001-03-12  |  4KB  |  135 lines

  1. <!--
  2. // bannerpd.js v1.4 (html4 compliant,optimized,css) 980910 abk
  3. // 980901 a name for bot top hdline link used for posit top
  4. // added check for its existence
  5. // 980910 - changed to use .headlines style sheet
  6. NS4=(document.layers);IE4=(document.all);
  7. isMac=(navigator.appVersion.indexOf("Mac")!=-1);
  8. if(NS4||(IE4&&!isMac)){
  9. finite=(maxLoops>0);
  10. var styleObj=(IE4)?".style":"";
  11. function getPH(phname){
  12. pHA="";
  13. for(i=0;i<document.anchors.length;i++){
  14. theA=document.anchors[i];
  15. if(theA.name==phname){pHA=theA;break}
  16. }
  17. return pHA //placeholding A
  18. }
  19. function getReal(xy){
  20. if(IE4){
  21. Pos=(xy=="x")?this.offsetLeft:this.offsetTop;
  22. tmpEl=this.offsetParent;
  23. while(tmpEl!=null){
  24. Pos+=(xy=="x")?tmpEl.offsetLeft:tmpEl.offsetTop;
  25. tmpEl=tmpEl.offsetParent;
  26. }
  27. }else{
  28. Pos=eval("this."+xy);
  29. }
  30. return Pos;
  31. }
  32. pHT=(NS4)?getPH("ph1"):document.all.ph1;
  33. if(pHT){
  34. pHT.getReal=getReal;
  35. var bnrLft=pHT.getReal("x")-1,bnrTop=pHT.getReal("y");
  36. pHB=(NS4)?getPH("phb"):document.all.phb;
  37. if(pHB){
  38. pHB.getReal=getReal;
  39. var bnrRit=pHB.getReal("x"),bnrBot=pHB.getReal("y");
  40. var bnrWid=bnrRit-bnrLft,bnrHit=bnrBot-bnrTop;
  41. function getObj(i){obj=eval("msg"+i+styleObj);return obj}
  42. onload=startBnr;
  43. function showMsg(n,show){
  44. var theEl=getObj(n);theEl.visibility=(show)?"visible":"hidden";
  45. }
  46. function nextMsg(){
  47. var fm=current;current=(fm==ar.length-1)?0:fm+1;
  48. if(current==1)loopCount++;
  49. if(finite&&(loopCount>=maxLoops))return;
  50. scrollBnr(fm,current);
  51. }
  52. function moveUp(){
  53. if(NS4){
  54. fmEl.top-=increment;
  55. if(toEl.top-increment<=toElTarget){
  56. toEl.top=toElTarget;clearInterval(intervalID);fmEl.visibility="hidden";
  57. timeoutID=setTimeout("nextMsg()",pause);
  58. }else{
  59. toEl.top-=increment;
  60. }
  61. }else{
  62. fmEl.pixelTop-=increment;
  63. if(toEl.pixelTop-increment<=toElTarget){
  64. toEl.pixelTop=toElTarget;clearInterval(intervalID);fmEl.visibility="hidden";
  65. timeoutID=setTimeout("nextMsg()",pause);
  66. }else{
  67. toEl.pixelTop-=increment;
  68. }}}
  69. function scrollBnr(fm,to){
  70. fmEl=getObj(fm);toEl=getObj(to);
  71. if(NS4){
  72. toEl.top=fmEl.top+bnrHit;toElTarget=fmEl.top;
  73. }else{
  74. toEl.pixelTop=fmEl.pixelTop+bnrHit;toElTarget=fmEl.pixelTop;
  75. }
  76. showMsg(to,true);
  77. intervalID=setInterval("moveUp()",interval);
  78. }
  79. function moveTo(lPos,tPos){this.style.pixelLeft=lPos;this.style.pixelTop=tPos;}
  80. function makeIE(){
  81. var text='<DIV ID="bnr" STYLE="position:absolute">';
  82. for(var i=ar.length-1;i>=0;i--){
  83. text+='<DIV ID="msg'+i+'" STYLE="position:absolute"><\/DIV>';
  84. }
  85. text+='<\/DIV>';
  86. document.body.insertAdjacentHTML("BeforeEnd",text);
  87. with(bnr.style){
  88. width=bnrWid;height=bnrHit;clip="rect(0 "+bnrWid+" "+bnrHit+" 0)";
  89. backgroundColor=bannerColor;
  90. }
  91. bnr.moveTo=moveTo;bnr.moveTo(bnrLft,bnrTop)
  92. for(i=0;i<ar.length;i++){
  93. with(eval("msg"+i+".style")){
  94. visibility="hidden";width=bnrWid-leftPadding;backgroundColor=bannerColor;
  95. }
  96. eval("msg"+i+".moveTo=moveTo");
  97. eval("msg"+i+".moveTo(leftPadding,topPadding)");
  98. }
  99. }
  100. function makeNS(){
  101. bnr=new Layer(bnrWid);
  102. with(bnr){
  103. clip.right=bnrWid;clip.bottom=bnrHit;bgColor=bannerColor;
  104. moveTo(bnrLft,bnrTop);visibility="show";
  105. }
  106. for(var i=0;i<ar.length;i++){
  107. eval("msg"+i+"="+"new Layer(bnrWid-leftPadding, bnr)");
  108. with(eval("msg"+i)) {
  109. moveTo(leftPadding,topPadding);bgColor=bannerColor;
  110. }}}
  111. function fillBnr(){
  112. var theEl;
  113. for(i=0;i<ar.length;i++){
  114. theEl=eval("msg"+i);
  115. newsStr="<A " +target+classid+
  116. " HREF="+ar[newsCount][0]+">"+ar[newsCount][1]+"<\/A>";
  117. if(NS4){
  118. with(theEl.document){write(newsStr);close();}
  119. }else{theEl.innerHTML=newsStr;}
  120. newsCount++;if(newsCount==ar.length)newsCount=0;
  121. }}
  122. function startBnr(){
  123. ar=new Array();
  124. if(!window.arURL)return;if(arURL.length==0)return;
  125. if(arURL.length<numheadlines)numheadlines=arURL.length; 
  126. for(i=0;i<numheadlines;i++){ar[i]=new Array(prefix+arURL[i],arTXT[i]);}
  127. newsCount=0;if(finite)loopCount=0;
  128. (NS4)?makeNS():makeIE();
  129. fillBnr();showMsg(0,true);current=0;
  130. window.onresize=reDo;timeoutID=setTimeout("nextMsg()",pause);
  131. }
  132. function reDo(){window.location.reload();}
  133. }}}
  134. //-->
  135.